<template>
  <div>
    <!-- 树状菜单 template中不能包含:key,所以应该放在所有子项中-->
    <template v-for="item in this.menuList">
      <!-- 有子菜单的菜单项展示方式 -->
      <el-submenu
        :disabled="item.disabled"
        :index="item.id+''" 
        :key="item.id+''"
        v-if="item.children!=null&&item.children.length>0"
      >
        <!-- 菜单项 -->
        <template slot="title">
          <!-- 图标 -->
          <i :class="item.icon"></i>
          <!-- 内容 -->
          <span slot="title">{{item.menuName}}</span>
        </template>
        <!-- 递归展示子MenuTree -->
        <MenuTree :menuList="item.children"></MenuTree>
      </el-submenu>
      <!-- 无子菜单的菜单项展示方式 -->
      <el-menu-item
        v-else
        :disabled="item.disabled"
        :index="item.id+''"
        :route="item.url+''"
        :key="item.id+''"
        style="padding-left: 50px;"
        @click="savePath(item.url)"
      >
        <i :class="item.icon"></i>
        <span slot="title">{{item.menuName}}</span>
      </el-menu-item>
    </template>
  </div>
</template>

<script>
export default {
  name: "MenuTree",
  props: ["menuList"],
  data() {
    return {
    };
  },
  methods:{
    //   保存激活路径
    savePath(path){
        window.sessionStorage.setItem("activePath",path);
        // 调用Main.vue的activePath
        this.activePath = path;
    }
  },
  components: {}
};
</script>

<style scpoed>
/* 实现了一个溢出处理 */
.el-menu--collapse span,
.el-menu--collapse i.el-submenu__icon-arrow {
  height: 0;
  width: 0;
  overflow: hidden;
  visibility: hidden;
  display: inline-block;
}

</style>
